mkshort: Touch the real conflict counter.
authoroliskoli <oliskoli>
Sat, 14 Jul 2007 21:10:22 +0000 (21:10 +0000)
committeroliskoli <oliskoli>
Sat, 14 Jul 2007 21:10:22 +0000 (21:10 +0000)
mkshort.c

index 28a01631ec80d94a32e15d63d056c453a3dd8660..e1e1b96fa395bde40ca68d6169a403779af7619f 100644 (file)
--- a/mkshort.c
+++ b/mkshort.c
@@ -111,7 +111,7 @@ mkshort_new_handle()
 }
 
 static 
-int
+uniq_shortname *
 is_unique(mkshort_handle *h, char *name)
 {
        queue *e, *t;
@@ -121,10 +121,10 @@ is_unique(mkshort_handle *h, char *name)
        QUEUE_FOR_EACH(&h->namelist[hash], e, t) {
                uniq_shortname *z = (uniq_shortname *) e;
                if (0 == case_ignore_strcmp(z->orig_shortname, name)) {
-                       return 0;
+                       return z;
                }
        }
-       return 1;
+       return (uniq_shortname *) NULL;
 }
 
 static
@@ -141,12 +141,12 @@ add_to_hashlist(mkshort_handle *h, char *name)
 char *
 mkshort_add_to_list(mkshort_handle *h, char *name)
 {
-       while (!is_unique(h, name)) {
+       uniq_shortname *s;
+
+       while ((s = is_unique(h, name))) {
                int dl;
                char tbuf[10];
                size_t l = strlen(name);
-               int hash = hash_string(name);
-               uniq_shortname *s = (uniq_shortname *) h->namelist[hash].next;
 
                s->conflictctr++;